﻿using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;

namespace Admin.NET.Application;

    /// <summary>
    /// 校本选课基础输入参数
    /// </summary>
    public class XuanKeBaseInput
    {
        /// <summary>
        /// 选课任务
        /// </summary>
        public virtual long XuankeTaskId { get; set; }
        
        /// <summary>
        /// 班级
        /// </summary>
        public virtual long BanjiId { get; set; }
        
        /// <summary>
        /// 教学班
        /// </summary>
        public virtual long JiaoxueBanId { get; set; }
        
        /// <summary>
        /// 学生
        /// </summary>
        public virtual long StudentId { get; set; }
        
        /// <summary>
        /// 课程
        /// </summary>
        public virtual long? KechengId { get; set; }
        
        /// <summary>
        /// 是否预选
        /// </summary>
        public virtual bool IsYuxuan { get; set; }
        
        /// <summary>
        /// 成绩
        /// </summary>
        public virtual string? Chengji { get; set; }
        
        /// <summary>
        /// 备注
        /// </summary>
        public virtual string? Remark { get; set; }


    /// <summary>
    /// 第1周考勤
    /// </summary>
    public virtual string? Chuqin1 { get; set; }

    /// <summary>
    /// 第2周考勤
    /// </summary>
    public virtual string? Chuqin2 { get; set; }

    /// <summary>
    /// 第3周考勤
    /// </summary>
    public virtual string? Chuqin3 { get; set; }

    /// <summary>
    /// 第4周考勤
    /// </summary>
    public virtual string? Chuqin4 { get; set; }

    /// <summary>
    /// 第5周考勤
    /// </summary>
    public virtual string? Chuqin5 { get; set; }

    /// <summary>
    /// 第6周考勤
    /// </summary>
    public virtual string? Chuqin6 { get; set; }

    /// <summary>
    /// 第7周考勤
    /// </summary>
    public virtual string? Chuqin7 { get; set; }

    /// <summary>
    /// 第8周考勤
    /// </summary>
    public virtual string? Chuqin8 { get; set; }

    /// <summary>
    /// 第9周考勤
    /// </summary>
    public virtual string? Chuqin9 { get; set; }

    /// <summary>
    /// 第10周考勤
    /// </summary>
    public virtual string? Chuqin10 { get; set; }

    /// <summary>
    /// 第11周考勤
    /// </summary>
    public virtual string? Chuqin11 { get; set; }

    /// <summary>
    /// 第12周考勤
    /// </summary>
    public virtual string? Chuqin12 { get; set; }

    /// <summary>
    /// 第13周考勤
    /// </summary>
    public virtual string? Chuqin13 { get; set; }

    /// <summary>
    /// 第14周考勤
    /// </summary>
    public virtual string? Chuqin14 { get; set; }

    /// <summary>
    /// 第15周考勤
    /// </summary>
    public virtual string? Chuqin15 { get; set; }

    /// <summary>
    /// 第16周考勤
    /// </summary>
    public string? Chuqin16 { get; set; }

    /// <summary>
    /// 第17周考勤
    /// </summary>
    public virtual string? Chuqin17 { get; set; }

    /// <summary>
    /// 第18周考勤
    /// </summary>
    public virtual string? Chuqin18 { get; set; }

    /// <summary>
    /// 第19周考勤
    /// </summary>
    public virtual string? Chuqin19 { get; set; }

    /// <summary>
    /// 第20周考勤
    /// </summary>
    public virtual string? Chuqin20 { get; set; }

    /// <summary>
    /// 创建者姓名
    /// </summary>
    public virtual string? CreateUserName { get; set; }
        
        /// <summary>
        /// 修改者姓名
        /// </summary>
        public virtual string? UpdateUserName { get; set; }
        
    }

    /// <summary>
    /// 校本选课分页查询输入参数
    /// </summary>
    public class XuanKeInput : BasePageInput
    {
        /// <summary>
        /// 关键字查询
        /// </summary>
        public string? SearchKey { get; set; }

        /// <summary>
        /// 选课任务
        /// </summary>
        public long? XuankeTaskId { get; set; }
        
        /// <summary>
        /// 班级
        /// </summary>
        public long? BanjiId { get; set; }
        
        /// <summary>
        /// 教学班
        /// </summary>
        public long? JiaoxueBanId { get; set; }
        
        /// <summary>
        /// 学生
        /// </summary>
        public long? StudentId { get; set; }
        
        /// <summary>
        /// 课程
        /// </summary>
        public long? KechengId { get; set; }
        
        /// <summary>
        /// 是否预选
        /// </summary>
        public bool? IsYuxuan { get; set; }
        
        /// <summary>
        /// 成绩
        /// </summary>
        public string? Chengji { get; set; }
        
        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }
        
    }

    /// <summary>
    /// 校本选课增加输入参数
    /// </summary>
    public class AddXuanKeInput : XuanKeBaseInput
    {
        /// <summary>
        /// 选课任务
        /// </summary>
        [Required(ErrorMessage = "选课任务不能为空")]
        public override long XuankeTaskId { get; set; }
        
        /// <summary>
        /// 班级
        /// </summary>
        [Required(ErrorMessage = "班级不能为空")]
        public override long BanjiId { get; set; }
        
        /// <summary>
        /// 教学班
        /// </summary>
        [Required(ErrorMessage = "教学班不能为空")]
        public override long JiaoxueBanId { get; set; }
        
        /// <summary>
        /// 学生
        /// </summary>
        [Required(ErrorMessage = "学生不能为空")]
        public override long StudentId { get; set; }
        
        /// <summary>
        /// 是否预选
        /// </summary>
        [Required(ErrorMessage = "是否预选不能为空")]
        public override bool IsYuxuan { get; set; }
        
    }

    /// <summary>
    /// 校本选课删除输入参数
    /// </summary>
    public class DeleteXuanKeInput : BaseIdInput
    {
    }

    /// <summary>
    /// 校本选课更新输入参数
    /// </summary>
    public class UpdateXuanKeInput : XuanKeBaseInput
    {
        /// <summary>
        /// 主键Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
        
    }

    /// <summary>
    /// 校本选课更新出勤情况
    /// </summary>
    public class ChuqinInput 
    {
         public string zhouci { get; set; }
         public List<UpdateXuanKeInput> Data { get; set; }
    }

/// <summary>
/// 校本选课主键查询输入参数
/// </summary>
public class QueryByIdXuanKeInput : DeleteXuanKeInput
    {

    }
